//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.restaurant.application.accumulategoods.support;

import com.google.common.collect.Lists;
import com.nebutown.generation.Convert;
import com.nebutown.generation.PickableBean;
import com.nebutown.generation.basictype.UIDLists;
import java.util.List;
import java.util.stream.Collectors;

public class GoodsData implements PickableBean {
    public static final String FN_CREATETIME = "createTime";
    public static final String FN_MODIFYTIME = "modifyTime";
    public static final String FN_GOODSID = "goodsId";
    public static final String FN_GOODSNAME = "goodsName";
    public static final String FN_IMAGES = "images";
    public static final String FN_GOODSCATEGORY = "goodsCategory";
    public static final String FN_TYPEID = "typeId";
    public static final String FN_TYPEIDUID = "typeIdUid";
    public static final String FN_ACCESSLEVEL = "accessLevel";
    public static final String FN_LEVELUID = "levelUid";
    public static final String FN_ACCUMULATEPOINTS = "accumulatePoints";
    public static final String FN_GOODSDESCRIBE = "goodsDescribe";
    public static final String FN_NUMBERLIMIT = "numberLimit";
    public static final String FN_STATE = "state";
    public static final String FN_PRICE = "price";
    public static final String FN_FORSELLTIME = "forSellTime";
    public static final String FN_REMOVETIME = "removeTime";
    public static final String FN_SOLDNUMBER = "soldNumber";
    public static final String FN_TOTALNUMBER = "totalNUmber";
    public static final String FN_USESHOP = "useShop";
    public static final String FN_USESHOPID = "useShopId";
    public static final String FN_USESHOPUID = "useShopUid";
    public static final String FN_DELIVERYTYPE = "deliveryType";
    public static final String FN_IMMEDIATELY = "immediately";
    public static final List<String> FIELD_NAMES = Lists.newArrayList(new String[]{"createTime", "modifyTime", "goodsId", "goodsName", "images", "goodsCategory", "typeId", "typeIdUid", "accessLevel", "levelUid", "accumulatePoints", "goodsDescribe", "numberLimit", "state", "price", "forSellTime", "removeTime", "soldNumber", "totalNUmber", "useShop", "useShopId", "useShopUid", "deliveryType", "immediately"});
    private Long createTime;
    private Long modifyTime;
    private String goodsId;
    private String goodsName;
    private String images;
    private String goodsCategory;
    private String typeId;
    private String typeIdUid;
    private List<String> accessLevel;
    private UIDLists levelUid;
    private Long accumulatePoints;
    private String goodsDescribe;
    private Long numberLimit;
    private String state;
    private Double price;
    private Long forSellTime;
    private Long removeTime;
    private Long soldNumber;
    private Long totalNUmber;
    private List<String> useShop;
    private List<String> useShopId;
    private UIDLists useShopUid;
    private List<String> deliveryType;
    private Boolean immediately;

    public GoodsData(Long createTime, Long modifyTime, String goodsId, String goodsName, String images, String goodsCategory, String typeId, String typeIdUid, List<String> accessLevel, UIDLists levelUid, Long accumulatePoints, String goodsDescribe, Long numberLimit, String state, Double price, Long forSellTime, Long removeTime, Long soldNumber, Long totalNUmber, List<String> useShop, List<String> useShopId, UIDLists useShopUid, List<String> deliveryType, Boolean immediately) {
        this.setCreateTime(createTime);
        this.setModifyTime(modifyTime);
        this.setGoodsId(goodsId);
        this.setGoodsName(goodsName);
        this.setImages(images);
        this.setGoodsCategory(goodsCategory);
        this.setTypeId(typeId);
        this.setTypeIdUid(typeIdUid);
        this.setAccessLevel(accessLevel);
        this.setLevelUid(levelUid);
        this.setAccumulatePoints(accumulatePoints);
        this.setGoodsDescribe(goodsDescribe);
        this.setNumberLimit(numberLimit);
        this.setState(state);
        this.setPrice(price);
        this.setForSellTime(forSellTime);
        this.setRemoveTime(removeTime);
        this.setSoldNumber(soldNumber);
        this.setTotalNUmber(totalNUmber);
        this.setUseShop(useShop);
        this.setUseShopId(useShopId);
        this.setUseShopUid(useShopUid);
        this.setDeliveryType(deliveryType);
        this.setImmediately(immediately);
    }

    public GoodsData() {
    }

    public GoodsData duplicate() {
        GoodsData result = new GoodsData();
        result.createTime = this.createTime;
        result.modifyTime = this.modifyTime;
        result.goodsId = this.goodsId;
        result.goodsName = this.goodsName;
        result.images = this.images;
        result.goodsCategory = this.goodsCategory;
        result.typeId = this.typeId;
        result.typeIdUid = this.typeIdUid;
        result.accessLevel = this.accessLevel == null ? null : (List)this.accessLevel.stream().map((e1) -> {
            return e1;
        }).collect(Collectors.toList());
        result.levelUid = this.levelUid == null ? null : this.levelUid.duplicate();
        result.accumulatePoints = this.accumulatePoints;
        result.goodsDescribe = this.goodsDescribe;
        result.numberLimit = this.numberLimit;
        result.state = this.state;
        result.price = this.price;
        result.forSellTime = this.forSellTime;
        result.removeTime = this.removeTime;
        result.soldNumber = this.soldNumber;
        result.totalNUmber = this.totalNUmber;
        result.useShop = this.useShop == null ? null : (List)this.useShop.stream().map((e2) -> {
            return e2;
        }).collect(Collectors.toList());
        result.useShopId = this.useShopId == null ? null : (List)this.useShopId.stream().map((e3) -> {
            return e3;
        }).collect(Collectors.toList());
        result.useShopUid = this.useShopUid == null ? null : this.useShopUid.duplicate();
        result.deliveryType = this.deliveryType == null ? null : (List)this.deliveryType.stream().map((e4) -> {
            return e4;
        }).collect(Collectors.toList());
        result.immediately = this.immediately;
        return result;
    }

    public String toString() {
        return Convert.toJson(this);
    }

    public Long getCreateTime() {
        return this.createTime;
    }

    public void setCreateTime(Long value) {
        this.createTime = value;
    }

    public GoodsData withCreateTime(Long value) {
        this.setCreateTime(value);
        return this;
    }

    public GoodsData withCreateTime(Long value, Long defaultValue) {
        this.setCreateTime(value == null ? defaultValue : value);
        return this;
    }

    public Long getModifyTime() {
        return this.modifyTime;
    }

    public void setModifyTime(Long value) {
        this.modifyTime = value;
    }

    public GoodsData withModifyTime(Long value) {
        this.setModifyTime(value);
        return this;
    }

    public GoodsData withModifyTime(Long value, Long defaultValue) {
        this.setModifyTime(value == null ? defaultValue : value);
        return this;
    }

    public String getGoodsId() {
        return this.goodsId;
    }

    public void setGoodsId(String value) {
        this.goodsId = value;
    }

    public GoodsData withGoodsId(String value) {
        this.setGoodsId(value);
        return this;
    }

    public GoodsData withGoodsId(String value, String defaultValue) {
        this.setGoodsId(value == null ? defaultValue : value);
        return this;
    }

    public String getGoodsName() {
        return this.goodsName;
    }

    public void setGoodsName(String value) {
        this.goodsName = value;
    }

    public GoodsData withGoodsName(String value) {
        this.setGoodsName(value);
        return this;
    }

    public GoodsData withGoodsName(String value, String defaultValue) {
        this.setGoodsName(value == null ? defaultValue : value);
        return this;
    }

    public String getImages() {
        return this.images;
    }

    public void setImages(String value) {
        this.images = value;
    }

    public GoodsData withImages(String value) {
        this.setImages(value);
        return this;
    }

    public GoodsData withImages(String value, String defaultValue) {
        this.setImages(value == null ? defaultValue : value);
        return this;
    }

    public String getGoodsCategory() {
        return this.goodsCategory;
    }

    public void setGoodsCategory(String value) {
        this.goodsCategory = value;
    }

    public GoodsData withGoodsCategory(String value) {
        this.setGoodsCategory(value);
        return this;
    }

    public GoodsData withGoodsCategory(String value, String defaultValue) {
        this.setGoodsCategory(value == null ? defaultValue : value);
        return this;
    }

    public String getTypeId() {
        return this.typeId;
    }

    public void setTypeId(String value) {
        this.typeId = value;
    }

    public GoodsData withTypeId(String value) {
        this.setTypeId(value);
        return this;
    }

    public GoodsData withTypeId(String value, String defaultValue) {
        this.setTypeId(value == null ? defaultValue : value);
        return this;
    }

    public String getTypeIdUid() {
        return this.typeIdUid;
    }

    public void setTypeIdUid(String value) {
        this.typeIdUid = value;
    }

    public GoodsData withTypeIdUid(String value) {
        this.setTypeIdUid(value);
        return this;
    }

    public GoodsData withTypeIdUid(String value, String defaultValue) {
        this.setTypeIdUid(value == null ? defaultValue : value);
        return this;
    }

    public List<String> getAccessLevel() {
        if (this.accessLevel == null) {
            this.accessLevel = Lists.newArrayList();
        }

        return this.accessLevel;
    }

    public void setAccessLevel(List<String> value) {
        this.accessLevel = value;
    }

    public GoodsData withAccessLevel(List<String> value) {
        this.setAccessLevel(value);
        return this;
    }

    public GoodsData withAccessLevel(List<String> value, List<String> defaultValue) {
        this.setAccessLevel(value == null ? defaultValue : value);
        return this;
    }

    public GoodsData addAccessLevel(String value) {
        if (this.accessLevel == null) {
            this.accessLevel = Lists.newArrayList();
        }

        this.accessLevel.add(value);
        return this;
    }

    public UIDLists getLevelUid() {
        if (this.levelUid == null) {
            this.levelUid = new UIDLists();
        }

        return this.levelUid;
    }

    public void setLevelUid(UIDLists value) {
        this.levelUid = value;
    }

    public GoodsData withLevelUid(UIDLists value) {
        this.setLevelUid(value);
        return this;
    }

    public GoodsData withLevelUid(UIDLists value, UIDLists defaultValue) {
        this.setLevelUid(value == null ? defaultValue : value);
        return this;
    }

    public Long getAccumulatePoints() {
        return this.accumulatePoints;
    }

    public void setAccumulatePoints(Long value) {
        this.accumulatePoints = value;
    }

    public GoodsData withAccumulatePoints(Long value) {
        this.setAccumulatePoints(value);
        return this;
    }

    public GoodsData withAccumulatePoints(Long value, Long defaultValue) {
        this.setAccumulatePoints(value == null ? defaultValue : value);
        return this;
    }

    public String getGoodsDescribe() {
        return this.goodsDescribe;
    }

    public void setGoodsDescribe(String value) {
        this.goodsDescribe = value;
    }

    public GoodsData withGoodsDescribe(String value) {
        this.setGoodsDescribe(value);
        return this;
    }

    public GoodsData withGoodsDescribe(String value, String defaultValue) {
        this.setGoodsDescribe(value == null ? defaultValue : value);
        return this;
    }

    public Long getNumberLimit() {
        return this.numberLimit;
    }

    public void setNumberLimit(Long value) {
        this.numberLimit = value;
    }

    public GoodsData withNumberLimit(Long value) {
        this.setNumberLimit(value);
        return this;
    }

    public GoodsData withNumberLimit(Long value, Long defaultValue) {
        this.setNumberLimit(value == null ? defaultValue : value);
        return this;
    }

    public String getState() {
        return this.state;
    }

    public void setState(String value) {
        this.state = value;
    }

    public GoodsData withState(String value) {
        this.setState(value);
        return this;
    }

    public GoodsData withState(String value, String defaultValue) {
        this.setState(value == null ? defaultValue : value);
        return this;
    }

    public Double getPrice() {
        return this.price;
    }

    public void setPrice(Double value) {
        this.price = value;
    }

    public GoodsData withPrice(Double value) {
        this.setPrice(value);
        return this;
    }

    public GoodsData withPrice(Double value, Double defaultValue) {
        this.setPrice(value == null ? defaultValue : value);
        return this;
    }

    public Long getForSellTime() {
        return this.forSellTime;
    }

    public void setForSellTime(Long value) {
        this.forSellTime = value;
    }

    public GoodsData withForSellTime(Long value) {
        this.setForSellTime(value);
        return this;
    }

    public GoodsData withForSellTime(Long value, Long defaultValue) {
        this.setForSellTime(value == null ? defaultValue : value);
        return this;
    }

    public Long getRemoveTime() {
        return this.removeTime;
    }

    public void setRemoveTime(Long value) {
        this.removeTime = value;
    }

    public GoodsData withRemoveTime(Long value) {
        this.setRemoveTime(value);
        return this;
    }

    public GoodsData withRemoveTime(Long value, Long defaultValue) {
        this.setRemoveTime(value == null ? defaultValue : value);
        return this;
    }

    public Long getSoldNumber() {
        return this.soldNumber;
    }

    public void setSoldNumber(Long value) {
        this.soldNumber = value;
    }

    public GoodsData withSoldNumber(Long value) {
        this.setSoldNumber(value);
        return this;
    }

    public GoodsData withSoldNumber(Long value, Long defaultValue) {
        this.setSoldNumber(value == null ? defaultValue : value);
        return this;
    }

    public Long getTotalNUmber() {
        return this.totalNUmber;
    }

    public void setTotalNUmber(Long value) {
        this.totalNUmber = value;
    }

    public GoodsData withTotalNUmber(Long value) {
        this.setTotalNUmber(value);
        return this;
    }

    public GoodsData withTotalNUmber(Long value, Long defaultValue) {
        this.setTotalNUmber(value == null ? defaultValue : value);
        return this;
    }

    public List<String> getUseShop() {
        if (this.useShop == null) {
            this.useShop = Lists.newArrayList();
        }

        return this.useShop;
    }

    public void setUseShop(List<String> value) {
        this.useShop = value;
    }

    public GoodsData withUseShop(List<String> value) {
        this.setUseShop(value);
        return this;
    }

    public GoodsData withUseShop(List<String> value, List<String> defaultValue) {
        this.setUseShop(value == null ? defaultValue : value);
        return this;
    }

    public GoodsData addUseShop(String value) {
        if (this.useShop == null) {
            this.useShop = Lists.newArrayList();
        }

        this.useShop.add(value);
        return this;
    }

    public List<String> getUseShopId() {
        if (this.useShopId == null) {
            this.useShopId = Lists.newArrayList();
        }

        return this.useShopId;
    }

    public void setUseShopId(List<String> value) {
        this.useShopId = value;
    }

    public GoodsData withUseShopId(List<String> value) {
        this.setUseShopId(value);
        return this;
    }

    public GoodsData withUseShopId(List<String> value, List<String> defaultValue) {
        this.setUseShopId(value == null ? defaultValue : value);
        return this;
    }

    public GoodsData addUseShopId(String value) {
        if (this.useShopId == null) {
            this.useShopId = Lists.newArrayList();
        }

        this.useShopId.add(value);
        return this;
    }

    public UIDLists getUseShopUid() {
        if (this.useShopUid == null) {
            this.useShopUid = new UIDLists();
        }

        return this.useShopUid;
    }

    public void setUseShopUid(UIDLists value) {
        this.useShopUid = value;
    }

    public GoodsData withUseShopUid(UIDLists value) {
        this.setUseShopUid(value);
        return this;
    }

    public GoodsData withUseShopUid(UIDLists value, UIDLists defaultValue) {
        this.setUseShopUid(value == null ? defaultValue : value);
        return this;
    }

    public List<String> getDeliveryType() {
        if (this.deliveryType == null) {
            this.deliveryType = Lists.newArrayList();
        }

        return this.deliveryType;
    }

    public void setDeliveryType(List<String> value) {
        this.deliveryType = value;
    }

    public GoodsData withDeliveryType(List<String> value) {
        this.setDeliveryType(value);
        return this;
    }

    public GoodsData withDeliveryType(List<String> value, List<String> defaultValue) {
        this.setDeliveryType(value == null ? defaultValue : value);
        return this;
    }

    public GoodsData addDeliveryType(String value) {
        if (this.deliveryType == null) {
            this.deliveryType = Lists.newArrayList();
        }

        this.deliveryType.add(value);
        return this;
    }

    public Boolean getImmediately() {
        return this.immediately;
    }

    public void setImmediately(Boolean value) {
        this.immediately = value;
    }

    public GoodsData withImmediately(Boolean value) {
        this.setImmediately(value);
        return this;
    }

    public GoodsData withImmediately(Boolean value, Boolean defaultValue) {
        this.setImmediately(value == null ? defaultValue : value);
        return this;
    }

    public Object getValueOf(String name) {
        byte var3 = -1;
        switch(name.hashCode()) {
            case -2131635668:
                if (name.equals("levelUid")) {
                    var3 = 9;
                }
                break;
            case -1867729624:
                if (name.equals("forSellTime")) {
                    var3 = 15;
                }
                break;
            case -1800037122:
                if (name.equals("immediately")) {
                    var3 = 23;
                }
                break;
            case -1568146203:
                if (name.equals("accumulatePoints")) {
                    var3 = 10;
                }
                break;
            case -1185250696:
                if (name.equals("images")) {
                    var3 = 4;
                }
                break;
            case -1050364800:
                if (name.equals("accessLevel")) {
                    var3 = 8;
                }
                break;
            case -907464819:
                if (name.equals("totalNUmber")) {
                    var3 = 18;
                }
                break;
            case -858803723:
                if (name.equals("typeId")) {
                    var3 = 6;
                }
                break;
            case -539807976:
                if (name.equals("useShopId")) {
                    var3 = 20;
                }
                break;
            case -365755788:
                if (name.equals("goodsCategory")) {
                    var3 = 5;
                }
                break;
            case -148047587:
                if (name.equals("useShop")) {
                    var3 = 19;
                }
                break;
            case 106934601:
                if (name.equals("price")) {
                    var3 = 14;
                }
                break;
            case 109757585:
                if (name.equals("state")) {
                    var3 = 13;
                }
                break;
            case 207037201:
                if (name.equals("goodsId")) {
                    var3 = 2;
                }
                break;
            case 257281341:
                if (name.equals("soldNumber")) {
                    var3 = 17;
                }
                break;
            case 445833715:
                if (name.equals("useShopUid")) {
                    var3 = 21;
                }
                break;
            case 498555419:
                if (name.equals("typeIdUid")) {
                    var3 = 7;
                }
                break;
            case 601947201:
                if (name.equals("goodsDescribe")) {
                    var3 = 11;
                }
                break;
            case 681968974:
                if (name.equals("deliveryType")) {
                    var3 = 22;
                }
                break;
            case 719988210:
                if (name.equals("numberLimit")) {
                    var3 = 12;
                }
                break;
            case 1098571121:
                if (name.equals("removeTime")) {
                    var3 = 16;
                }
                break;
            case 1211388583:
                if (name.equals("modifyTime")) {
                    var3 = 1;
                }
                break;
            case 1369213417:
                if (name.equals("createTime")) {
                    var3 = 0;
                }
                break;
            case 1394404097:
                if (name.equals("goodsName")) {
                    var3 = 3;
                }
        }

        switch(var3) {
            case 0:
                return this.getCreateTime();
            case 1:
                return this.getModifyTime();
            case 2:
                return this.getGoodsId();
            case 3:
                return this.getGoodsName();
            case 4:
                return this.getImages();
            case 5:
                return this.getGoodsCategory();
            case 6:
                return this.getTypeId();
            case 7:
                return this.getTypeIdUid();
            case 8:
                return this.getAccessLevel();
            case 9:
                return this.getLevelUid();
            case 10:
                return this.getAccumulatePoints();
            case 11:
                return this.getGoodsDescribe();
            case 12:
                return this.getNumberLimit();
            case 13:
                return this.getState();
            case 14:
                return this.getPrice();
            case 15:
                return this.getForSellTime();
            case 16:
                return this.getRemoveTime();
            case 17:
                return this.getSoldNumber();
            case 18:
                return this.getTotalNUmber();
            case 19:
                return this.getUseShop();
            case 20:
                return this.getUseShopId();
            case 21:
                return this.getUseShopUid();
            case 22:
                return this.getDeliveryType();
            case 23:
                return this.getImmediately();
            default:
                return null;
        }
    }

    public void setValueOf(String name, Object value) {
        byte var4 = -1;
        switch(name.hashCode()) {
            case -2131635668:
                if (name.equals("levelUid")) {
                    var4 = 9;
                }
                break;
            case -1867729624:
                if (name.equals("forSellTime")) {
                    var4 = 15;
                }
                break;
            case -1800037122:
                if (name.equals("immediately")) {
                    var4 = 23;
                }
                break;
            case -1568146203:
                if (name.equals("accumulatePoints")) {
                    var4 = 10;
                }
                break;
            case -1185250696:
                if (name.equals("images")) {
                    var4 = 4;
                }
                break;
            case -1050364800:
                if (name.equals("accessLevel")) {
                    var4 = 8;
                }
                break;
            case -907464819:
                if (name.equals("totalNUmber")) {
                    var4 = 18;
                }
                break;
            case -858803723:
                if (name.equals("typeId")) {
                    var4 = 6;
                }
                break;
            case -539807976:
                if (name.equals("useShopId")) {
                    var4 = 20;
                }
                break;
            case -365755788:
                if (name.equals("goodsCategory")) {
                    var4 = 5;
                }
                break;
            case -148047587:
                if (name.equals("useShop")) {
                    var4 = 19;
                }
                break;
            case 106934601:
                if (name.equals("price")) {
                    var4 = 14;
                }
                break;
            case 109757585:
                if (name.equals("state")) {
                    var4 = 13;
                }
                break;
            case 207037201:
                if (name.equals("goodsId")) {
                    var4 = 2;
                }
                break;
            case 257281341:
                if (name.equals("soldNumber")) {
                    var4 = 17;
                }
                break;
            case 445833715:
                if (name.equals("useShopUid")) {
                    var4 = 21;
                }
                break;
            case 498555419:
                if (name.equals("typeIdUid")) {
                    var4 = 7;
                }
                break;
            case 601947201:
                if (name.equals("goodsDescribe")) {
                    var4 = 11;
                }
                break;
            case 681968974:
                if (name.equals("deliveryType")) {
                    var4 = 22;
                }
                break;
            case 719988210:
                if (name.equals("numberLimit")) {
                    var4 = 12;
                }
                break;
            case 1098571121:
                if (name.equals("removeTime")) {
                    var4 = 16;
                }
                break;
            case 1211388583:
                if (name.equals("modifyTime")) {
                    var4 = 1;
                }
                break;
            case 1369213417:
                if (name.equals("createTime")) {
                    var4 = 0;
                }
                break;
            case 1394404097:
                if (name.equals("goodsName")) {
                    var4 = 3;
                }
        }

        switch(var4) {
            case 0:
                this.setCreateTime((Long)value);
                return;
            case 1:
                this.setModifyTime((Long)value);
                return;
            case 2:
                this.setGoodsId((String)value);
                return;
            case 3:
                this.setGoodsName((String)value);
                return;
            case 4:
                this.setImages((String)value);
                return;
            case 5:
                this.setGoodsCategory((String)value);
                return;
            case 6:
                this.setTypeId((String)value);
                return;
            case 7:
                this.setTypeIdUid((String)value);
                return;
            case 8:
                this.setAccessLevel((List)value);
                return;
            case 9:
                this.setLevelUid((UIDLists)value);
                return;
            case 10:
                this.setAccumulatePoints((Long)value);
                return;
            case 11:
                this.setGoodsDescribe((String)value);
                return;
            case 12:
                this.setNumberLimit((Long)value);
                return;
            case 13:
                this.setState((String)value);
                return;
            case 14:
                this.setPrice((Double)value);
                return;
            case 15:
                this.setForSellTime((Long)value);
                return;
            case 16:
                this.setRemoveTime((Long)value);
                return;
            case 17:
                this.setSoldNumber((Long)value);
                return;
            case 18:
                this.setTotalNUmber((Long)value);
                return;
            case 19:
                this.setUseShop((List)value);
                return;
            case 20:
                this.setUseShopId((List)value);
                return;
            case 21:
                this.setUseShopUid((UIDLists)value);
                return;
            case 22:
                this.setDeliveryType((List)value);
                return;
            case 23:
                this.setImmediately((Boolean)value);
                return;
            default:
        }
    }

    public boolean hasField(String name) {
        return FIELD_NAMES.contains(name);
    }

    public int hashCode() {
        return this.signature().hashCode();
    }

    public boolean equals(Object o) {
        return !(o instanceof GoodsData) ? false : this.signature().equals(((GoodsData)o).signature());
    }

    public String signature() {
        throw new RuntimeException("Bean GoodsData has no signature defined, no hash code or equals possible.");
    }
}
